/*
 * The LevelDB-CLI Project
 * Copyright (C) 2024 JuRuoqwq<BitPasta@163.com>
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */

#ifndef OUTPUT_DATA_H
#define OUTPUT_DATA_H

#include <string>
#include <vector>

#define CLI_VERSION "3.1.0"
#define DB_VERSION "1.23"

std::vector<std::string> helloMsg = {
    "LevelDB-CLI ", CLI_VERSION, " (", __DATE__, " " , __TIME__, ") [Clang ", __VERSION__, "]\r\n",
    "LevelDB Kernel ", DB_VERSION, " (github.com/google/leveldb)\r\n",
    "Type \"help\", \"version\" for more information\r\n"
};

std::vector<std::string> versionMsg = {
    "LevelDB-CLI ", CLI_VERSION, " (", __DATE__, " " , __TIME__, ") [Clang ", __VERSION__, "]\r\n",
    "LevelDB Kernel ", DB_VERSION, " (github.com/google/leveldb)\r\n",
    "Open source in Gitee(gitee.com/juruoqwq/leveldb_cli)\r\n"
};

std::vector<std::string> helpMsg = {
    "Command line usage: leveldb_cli [command] [filename]\r\n",
    "   Command line operations:\r\n",
    "       --open, -o [filename] - As same as \"open [filename]\".\r\n",
    "       --exist-only - As same as \"options create_if_missing false\".\r\n",
    "Prompt usage: [command] [arg1] [arg2]\r\n",
    "   Database Operations:\r\n"
    "       set [key] [value] - set key to value,\r\n",
    "       get [key] - Get the value of key,\r\n",
    "       delete(del) [key] - Remove key,\r\n",
    "       show [sub-command] [format] - Show key-value set conditionally,\r\n",
    "           prefix [prefix] - Show key-value set with prefix [prefix],\r\n",
    "           all - Show all key-vale set,\r\n"
    "       clear --force(-f) - to remove all the data forcely.\r\n",
    "   Option Operations:(see google/leveldb/doc/index.md)\r\n",
    "       options(opts),\r\n",
    "       read_options(ropts),\r\n",
    "       write_options(wopts).\r\n",
    "   Native Operations:\r\n",
    "       help - Show this screen,\r\n",
    "       version - Show the version of LevelDB and CLI,\r\n",
    "       quit - Exit the application,\r\n",
    "       open [database file] - Open file,\r\n",
    "       close - Close file.\r\n"
};

#endif